<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::Narf类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_narf.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="#pub-static-attribs">静态 Public 属性</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-static-methods">静态 Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pro-static-attribs">静态 Protected 属性</a> &#124;
<a href="classpcl_1_1_narf-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::Narf类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>NARF (<a class="el" href="structpcl_1_1_normal.html" title="A point structure representing normal coordinates and the surface curvature estimate....">Normal</a> Aligned Radial Features) is a point feature descriptor type for 3D data. Please refer to <a class="el" href="narf__descriptor_8h_source.html">pcl/features/narf_descriptor.h</a> if you want the class derived from pcl <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a>. See B. Steder, R. B. Rusu, K. Konolige, and W. Burgard Point <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a> Extraction on 3D Range Scans Taking into Account <a class="el" href="class_object.html">Object</a> Boundaries In Proc. of the IEEE Int. Conf. on Robotics &amp;Automation (ICRA). 2011.  
 <a href="classpcl_1_1_narf.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="narf_8h_source.html">narf.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpcl_1_1_narf_1_1_feature_point_representation.html">FeaturePointRepresentation</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a3361724a9bbcbafbf1c1da3b521b1127"><td class="memItemLeft" align="right" valign="top"><a id="a3361724a9bbcbafbf1c1da3b521b1127"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a3361724a9bbcbafbf1c1da3b521b1127">Narf</a> ()</td></tr>
<tr class="memdesc:a3361724a9bbcbafbf1c1da3b521b1127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor <br /></td></tr>
<tr class="separator:a3361724a9bbcbafbf1c1da3b521b1127"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41bb4751e236b5b67d90380d3ecb4f50"><td class="memItemLeft" align="right" valign="top"><a id="a41bb4751e236b5b67d90380d3ecb4f50"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a41bb4751e236b5b67d90380d3ecb4f50">Narf</a> (const <a class="el" href="classpcl_1_1_narf.html">Narf</a> &amp;other)</td></tr>
<tr class="memdesc:a41bb4751e236b5b67d90380d3ecb4f50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy Constructor <br /></td></tr>
<tr class="separator:a41bb4751e236b5b67d90380d3ecb4f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa856b2054103e3dae1553e13bfdbcc58"><td class="memItemLeft" align="right" valign="top"><a id="aa856b2054103e3dae1553e13bfdbcc58"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#aa856b2054103e3dae1553e13bfdbcc58">~Narf</a> ()</td></tr>
<tr class="memdesc:aa856b2054103e3dae1553e13bfdbcc58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor <br /></td></tr>
<tr class="separator:aa856b2054103e3dae1553e13bfdbcc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a447a5e5900e07dd690ba22926f52767b"><td class="memItemLeft" align="right" valign="top"><a id="a447a5e5900e07dd690ba22926f52767b"></a>
const <a class="el" href="classpcl_1_1_narf.html">Narf</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a447a5e5900e07dd690ba22926f52767b">operator=</a> (const <a class="el" href="classpcl_1_1_narf.html">Narf</a> &amp;other)</td></tr>
<tr class="memdesc:a447a5e5900e07dd690ba22926f52767b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator <br /></td></tr>
<tr class="separator:a447a5e5900e07dd690ba22926f52767b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8101cd954ba024b13e3ffee8610c7e2c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a8101cd954ba024b13e3ffee8610c7e2c">extractFromRangeImage</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const Eigen::Affine3f &amp;pose, int descriptor_size, float support_size, int surface_patch_world_size=NARF_DEFAULT_SURFACE_PATCH_PIXEL_SIZE)</td></tr>
<tr class="separator:a8101cd954ba024b13e3ffee8610c7e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dbd5dd3d873ddb21dcec86c0ae9ae96"><td class="memItemLeft" align="right" valign="top"><a id="a5dbd5dd3d873ddb21dcec86c0ae9ae96"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a5dbd5dd3d873ddb21dcec86c0ae9ae96">extractFromRangeImage</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, float x, float y, int descriptor_size, float support_size)</td></tr>
<tr class="memdesc:a5dbd5dd3d873ddb21dcec86c0ae9ae96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above, but determines the transformation from the surface in the range image <br /></td></tr>
<tr class="separator:a5dbd5dd3d873ddb21dcec86c0ae9ae96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20092247992db18752400cc4fccfed22"><td class="memItemLeft" align="right" valign="top"><a id="a20092247992db18752400cc4fccfed22"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a20092247992db18752400cc4fccfed22">extractFromRangeImage</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const <a class="el" href="structpcl_1_1_interest_point.html">InterestPoint</a> &amp;interest_point, int descriptor_size, float support_size)</td></tr>
<tr class="memdesc:a20092247992db18752400cc4fccfed22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above <br /></td></tr>
<tr class="separator:a20092247992db18752400cc4fccfed22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad356170cac220a28fbc40ce75d63ff77"><td class="memItemLeft" align="right" valign="top"><a id="ad356170cac220a28fbc40ce75d63ff77"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ad356170cac220a28fbc40ce75d63ff77">extractFromRangeImage</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const Eigen::Vector3f &amp;interest_point, int descriptor_size, float support_size)</td></tr>
<tr class="memdesc:ad356170cac220a28fbc40ce75d63ff77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as above <br /></td></tr>
<tr class="separator:ad356170cac220a28fbc40ce75d63ff77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa62146ff1369f2f3c3b15a8183910269"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#aa62146ff1369f2f3c3b15a8183910269">extractFromRangeImageWithBestRotation</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const Eigen::Vector3f &amp;interest_point, int descriptor_size, float support_size)</td></tr>
<tr class="separator:aa62146ff1369f2f3c3b15a8183910269"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adabb884e0a4660a42cffff6cfaad0d17"><td class="memItemLeft" align="right" valign="top"><a id="adabb884e0a4660a42cffff6cfaad0d17"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>getRotations</b> (std::vector&lt; float &gt; &amp;rotations, std::vector&lt; float &gt; &amp;strengths) const</td></tr>
<tr class="separator:adabb884e0a4660a42cffff6cfaad0d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58fed49498441e52267f36f849a3fbb6"><td class="memItemLeft" align="right" valign="top"><a id="a58fed49498441e52267f36f849a3fbb6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>getRotatedVersions</b> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const std::vector&lt; float &gt; &amp;rotations, std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;features) const</td></tr>
<tr class="separator:a58fed49498441e52267f36f849a3fbb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0ad039d43c4d15ae1dbc10c1b764dc6"><td class="memItemLeft" align="right" valign="top"><a id="af0ad039d43c4d15ae1dbc10c1b764dc6"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#af0ad039d43c4d15ae1dbc10c1b764dc6">getDescriptorDistance</a> (const <a class="el" href="classpcl_1_1_narf.html">Narf</a> &amp;other) const</td></tr>
<tr class="memdesc:af0ad039d43c4d15ae1dbc10c1b764dc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate descriptor distance, value in [0,1] with 0 meaning identical and 1 every cell above maximum distance <br /></td></tr>
<tr class="separator:af0ad039d43c4d15ae1dbc10c1b764dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71de93b130af347bada8af0848d2cebe"><td class="memItemLeft" align="right" valign="top"><a id="a71de93b130af347bada8af0848d2cebe"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a71de93b130af347bada8af0848d2cebe">getNoOfBeamPoints</a> () const</td></tr>
<tr class="memdesc:a71de93b130af347bada8af0848d2cebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many points on each beam of the gradient star are used to calculate the descriptor? <br /></td></tr>
<tr class="separator:a71de93b130af347bada8af0848d2cebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1badd23a00db9812b4a9af7acf5180be"><td class="memItemLeft" align="right" valign="top"><a id="a1badd23a00db9812b4a9af7acf5180be"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a1badd23a00db9812b4a9af7acf5180be">copyToNarf36</a> (<a class="el" href="structpcl_1_1_narf36.html">Narf36</a> &amp;narf36) const</td></tr>
<tr class="memdesc:a1badd23a00db9812b4a9af7acf5180be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the descriptor and pose to the point struct <a class="el" href="structpcl_1_1_narf36.html" title="A point structure representing the Narf descriptor.">Narf36</a> <br /></td></tr>
<tr class="separator:a1badd23a00db9812b4a9af7acf5180be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89db16a26f7e0925e718a75efba608a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a89db16a26f7e0925e718a75efba608a6">saveBinary</a> (const std::string &amp;filename) const</td></tr>
<tr class="separator:a89db16a26f7e0925e718a75efba608a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50806a8a86f0ae211fec512fc3690ab1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a50806a8a86f0ae211fec512fc3690ab1">saveBinary</a> (std::ostream &amp;file) const</td></tr>
<tr class="separator:a50806a8a86f0ae211fec512fc3690ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87a7424251b04af12cc614b8a5748df3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a87a7424251b04af12cc614b8a5748df3">loadBinary</a> (const std::string &amp;filename)</td></tr>
<tr class="separator:a87a7424251b04af12cc614b8a5748df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac93851648c43f8b8cd638cac800a44fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ac93851648c43f8b8cd638cac800a44fe">loadBinary</a> (std::istream &amp;file)</td></tr>
<tr class="separator:ac93851648c43f8b8cd638cac800a44fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3fcc2d8f34c150c6640a554dfa86cb9"><td class="memItemLeft" align="right" valign="top"><a id="ab3fcc2d8f34c150c6640a554dfa86cb9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ab3fcc2d8f34c150c6640a554dfa86cb9">extractDescriptor</a> (int descriptor_size)</td></tr>
<tr class="memdesc:ab3fcc2d8f34c150c6640a554dfa86cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the descriptor from the already set other members <br /></td></tr>
<tr class="separator:ab3fcc2d8f34c150c6640a554dfa86cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7256133a789ed42b4e2fecb9ef7ee061"><td class="memItemLeft" align="right" valign="top"><a id="a7256133a789ed42b4e2fecb9ef7ee061"></a>
const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a7256133a789ed42b4e2fecb9ef7ee061">getDescriptor</a> () const</td></tr>
<tr class="memdesc:a7256133a789ed42b4e2fecb9ef7ee061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the descriptor <br /></td></tr>
<tr class="separator:a7256133a789ed42b4e2fecb9ef7ee061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9eefc769a909b7e125a794c380c1b5fb"><td class="memItemLeft" align="right" valign="top"><a id="a9eefc769a909b7e125a794c380c1b5fb"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a9eefc769a909b7e125a794c380c1b5fb">getDescriptor</a> ()</td></tr>
<tr class="memdesc:a9eefc769a909b7e125a794c380c1b5fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the descriptor <br /></td></tr>
<tr class="separator:a9eefc769a909b7e125a794c380c1b5fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a247fa8f296b6e23be8018073148ac3b3"><td class="memItemLeft" align="right" valign="top"><a id="a247fa8f296b6e23be8018073148ac3b3"></a>
const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a247fa8f296b6e23be8018073148ac3b3">getDescriptorSize</a> () const</td></tr>
<tr class="memdesc:a247fa8f296b6e23be8018073148ac3b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the descriptor length <br /></td></tr>
<tr class="separator:a247fa8f296b6e23be8018073148ac3b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a127e876ba90da31343abce7b99c6d305"><td class="memItemLeft" align="right" valign="top"><a id="a127e876ba90da31343abce7b99c6d305"></a>
int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a127e876ba90da31343abce7b99c6d305">getDescriptorSize</a> ()</td></tr>
<tr class="memdesc:a127e876ba90da31343abce7b99c6d305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the descriptor length <br /></td></tr>
<tr class="separator:a127e876ba90da31343abce7b99c6d305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac31a69b7a3388b2d38551e16f7c2dd5a"><td class="memItemLeft" align="right" valign="top"><a id="ac31a69b7a3388b2d38551e16f7c2dd5a"></a>
const Eigen::Vector3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ac31a69b7a3388b2d38551e16f7c2dd5a">getPosition</a> () const</td></tr>
<tr class="memdesc:ac31a69b7a3388b2d38551e16f7c2dd5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the position <br /></td></tr>
<tr class="separator:ac31a69b7a3388b2d38551e16f7c2dd5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad06fca7936e50819c27ca51221283641"><td class="memItemLeft" align="right" valign="top"><a id="ad06fca7936e50819c27ca51221283641"></a>
Eigen::Vector3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ad06fca7936e50819c27ca51221283641">getPosition</a> ()</td></tr>
<tr class="memdesc:ad06fca7936e50819c27ca51221283641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the position <br /></td></tr>
<tr class="separator:ad06fca7936e50819c27ca51221283641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b5c9962ee22c46722a476a395923557"><td class="memItemLeft" align="right" valign="top"><a id="a4b5c9962ee22c46722a476a395923557"></a>
const Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a4b5c9962ee22c46722a476a395923557">getTransformation</a> () const</td></tr>
<tr class="memdesc:a4b5c9962ee22c46722a476a395923557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the 6DoF pose <br /></td></tr>
<tr class="separator:a4b5c9962ee22c46722a476a395923557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a646fe283f6b99fb19b7fc7784a32932d"><td class="memItemLeft" align="right" valign="top"><a id="a646fe283f6b99fb19b7fc7784a32932d"></a>
Eigen::Affine3f &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a646fe283f6b99fb19b7fc7784a32932d">getTransformation</a> ()</td></tr>
<tr class="memdesc:a646fe283f6b99fb19b7fc7784a32932d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the 6DoF pose <br /></td></tr>
<tr class="separator:a646fe283f6b99fb19b7fc7784a32932d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b6b7604877fe35cb82e16bdf2456237"><td class="memItemLeft" align="right" valign="top"><a id="a5b6b7604877fe35cb82e16bdf2456237"></a>
const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a5b6b7604877fe35cb82e16bdf2456237">getSurfacePatchPixelSize</a> () const</td></tr>
<tr class="memdesc:a5b6b7604877fe35cb82e16bdf2456237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the pixel size of the surface patch (only one dimension) <br /></td></tr>
<tr class="separator:a5b6b7604877fe35cb82e16bdf2456237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4f635ff08342e9713a8ce92f8bb43d"><td class="memItemLeft" align="right" valign="top"><a id="a7c4f635ff08342e9713a8ce92f8bb43d"></a>
int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a7c4f635ff08342e9713a8ce92f8bb43d">getSurfacePatchPixelSize</a> ()</td></tr>
<tr class="memdesc:a7c4f635ff08342e9713a8ce92f8bb43d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the pixel size of the surface patch (only one dimension) <br /></td></tr>
<tr class="separator:a7c4f635ff08342e9713a8ce92f8bb43d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ee48b664ec95b095dec9f7d5fcd3dab"><td class="memItemLeft" align="right" valign="top"><a id="a9ee48b664ec95b095dec9f7d5fcd3dab"></a>
const float &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a9ee48b664ec95b095dec9f7d5fcd3dab">getSurfacePatchWorldSize</a> () const</td></tr>
<tr class="memdesc:a9ee48b664ec95b095dec9f7d5fcd3dab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the world size of the surface patch <br /></td></tr>
<tr class="separator:a9ee48b664ec95b095dec9f7d5fcd3dab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64470852459c8b05ab4ed7e0452e7450"><td class="memItemLeft" align="right" valign="top"><a id="a64470852459c8b05ab4ed7e0452e7450"></a>
float &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a64470852459c8b05ab4ed7e0452e7450">getSurfacePatchWorldSize</a> ()</td></tr>
<tr class="memdesc:a64470852459c8b05ab4ed7e0452e7450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the world size of the surface patch <br /></td></tr>
<tr class="separator:a64470852459c8b05ab4ed7e0452e7450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a094f2ffdf7ac21701d5858ae68a38dd2"><td class="memItemLeft" align="right" valign="top"><a id="a094f2ffdf7ac21701d5858ae68a38dd2"></a>
const float &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a094f2ffdf7ac21701d5858ae68a38dd2">getSurfacePatchRotation</a> () const</td></tr>
<tr class="memdesc:a094f2ffdf7ac21701d5858ae68a38dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the rotation of the surface patch <br /></td></tr>
<tr class="separator:a094f2ffdf7ac21701d5858ae68a38dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a110dd08e4a29e511800839305da96ba7"><td class="memItemLeft" align="right" valign="top"><a id="a110dd08e4a29e511800839305da96ba7"></a>
float &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a110dd08e4a29e511800839305da96ba7">getSurfacePatchRotation</a> ()</td></tr>
<tr class="memdesc:a110dd08e4a29e511800839305da96ba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the rotation of the surface patch <br /></td></tr>
<tr class="separator:a110dd08e4a29e511800839305da96ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09f04405209b3d65a6215f9c599f5cee"><td class="memItemLeft" align="right" valign="top"><a id="a09f04405209b3d65a6215f9c599f5cee"></a>
const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a09f04405209b3d65a6215f9c599f5cee">getSurfacePatch</a> () const</td></tr>
<tr class="memdesc:a09f04405209b3d65a6215f9c599f5cee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter (const) for the surface patch <br /></td></tr>
<tr class="separator:a09f04405209b3d65a6215f9c599f5cee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f6f7d54e2d08f6aef84cd717573a49f"><td class="memItemLeft" align="right" valign="top"><a id="a6f6f7d54e2d08f6aef84cd717573a49f"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a6f6f7d54e2d08f6aef84cd717573a49f">getSurfacePatch</a> ()</td></tr>
<tr class="memdesc:a6f6f7d54e2d08f6aef84cd717573a49f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the surface patch <br /></td></tr>
<tr class="separator:a6f6f7d54e2d08f6aef84cd717573a49f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45cb31bfbb5079c6807226e535a796f4"><td class="memItemLeft" align="right" valign="top"><a id="a45cb31bfbb5079c6807226e535a796f4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a45cb31bfbb5079c6807226e535a796f4">freeSurfacePatch</a> ()</td></tr>
<tr class="memdesc:a45cb31bfbb5079c6807226e535a796f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method to erase the surface patch and free the memory <br /></td></tr>
<tr class="separator:a45cb31bfbb5079c6807226e535a796f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6765896bc6146f1543c96b9a8c198dd"><td class="memItemLeft" align="right" valign="top"><a id="af6765896bc6146f1543c96b9a8c198dd"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#af6765896bc6146f1543c96b9a8c198dd">setDescriptor</a> (float *descriptor)</td></tr>
<tr class="memdesc:af6765896bc6146f1543c96b9a8c198dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setter for the descriptor <br /></td></tr>
<tr class="separator:af6765896bc6146f1543c96b9a8c198dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2268e742874fb98b9671a430d1ec6299"><td class="memItemLeft" align="right" valign="top"><a id="a2268e742874fb98b9671a430d1ec6299"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a2268e742874fb98b9671a430d1ec6299">setSurfacePatch</a> (float *surface_patch)</td></tr>
<tr class="memdesc:a2268e742874fb98b9671a430d1ec6299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setter for the surface patch <br /></td></tr>
<tr class="separator:a2268e742874fb98b9671a430d1ec6299"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:a2b67a8d6011ee5c20d9427e7cdd1b3d6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a2b67a8d6011ee5c20d9427e7cdd1b3d6">extractFromRangeImageAndAddToList</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const Eigen::Vector3f &amp;interest_point, int descriptor_size, float support_size, bool rotation_invariant, std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;feature_list)</td></tr>
<tr class="separator:a2b67a8d6011ee5c20d9427e7cdd1b3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab5c91809cbfbce1ede48f82125fc2fd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#aab5c91809cbfbce1ede48f82125fc2fd">extractFromRangeImageAndAddToList</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, float image_x, float image_y, int descriptor_size, float support_size, bool rotation_invariant, std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;feature_list)</td></tr>
<tr class="separator:aab5c91809cbfbce1ede48f82125fc2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0d6212bd684e1bd04281b2b495bdd81"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#ad0d6212bd684e1bd04281b2b495bdd81">extractForInterestPoints</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_interest_point.html">InterestPoint</a> &gt; &amp;interest_points, int descriptor_size, float support_size, bool rotation_invariant, std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;feature_list)</td></tr>
<tr class="separator:ad0d6212bd684e1bd04281b2b495bdd81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcbc027348cdabae5b754a01faf7dbcf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#abcbc027348cdabae5b754a01faf7dbcf">extractForEveryRangeImagePointAndAddToList</a> (const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;range_image, int descriptor_size, float support_size, bool rotation_invariant, std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;feature_list)</td></tr>
<tr class="separator:abcbc027348cdabae5b754a01faf7dbcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
静态 Public 属性</h2></td></tr>
<tr class="memitem:a1cc0989284b374c5bded66135a1b67ba"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a1cc0989284b374c5bded66135a1b67ba">max_no_of_threads</a></td></tr>
<tr class="separator:a1cc0989284b374c5bded66135a1b67ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aa9335fa38746f8e7bfb4c9636331e1fc"><td class="memItemLeft" align="right" valign="top"><a id="aa9335fa38746f8e7bfb4c9636331e1fc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#aa9335fa38746f8e7bfb4c9636331e1fc">reset</a> ()</td></tr>
<tr class="memdesc:aa9335fa38746f8e7bfb4c9636331e1fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset al members to default values and free allocated memory <br /></td></tr>
<tr class="separator:aa9335fa38746f8e7bfb4c9636331e1fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf2b4b5701f7f4870bff70391f533dc8"><td class="memItemLeft" align="right" valign="top"><a id="adf2b4b5701f7f4870bff70391f533dc8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#adf2b4b5701f7f4870bff70391f533dc8">deepCopy</a> (const <a class="el" href="classpcl_1_1_narf.html">Narf</a> &amp;other)</td></tr>
<tr class="memdesc:adf2b4b5701f7f4870bff70391f533dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a deep copy of other <br /></td></tr>
<tr class="separator:adf2b4b5701f7f4870bff70391f533dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5d224adcdd8485e02a05ebe229aaf1"><td class="memItemLeft" align="right" valign="top"><a id="a7b5d224adcdd8485e02a05ebe229aaf1"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a7b5d224adcdd8485e02a05ebe229aaf1">getBlurredSurfacePatch</a> (int new_pixel_size, int blur_radius) const</td></tr>
<tr class="memdesc:a7b5d224adcdd8485e02a05ebe229aaf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the surface patch with a blur on it <br /></td></tr>
<tr class="separator:a7b5d224adcdd8485e02a05ebe229aaf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8125c8d1ca006267b558380b85fdfc2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a8125c8d1ca006267b558380b85fdfc2a">saveHeader</a> (std::ostream &amp;file) const</td></tr>
<tr class="separator:a8125c8d1ca006267b558380b85fdfc2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e7e324958d2d3ffa82fd598e70bc57d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_narf.html#a4e7e324958d2d3ffa82fd598e70bc57d">loadHeader</a> (std::istream &amp;file) const</td></tr>
<tr class="separator:a4e7e324958d2d3ffa82fd598e70bc57d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
静态 Protected 成员函数</h2></td></tr>
<tr class="memitem:a53d8ffebaa6aa3ed5a99728db0503f15"><td class="memItemLeft" align="right" valign="top"><a id="a53d8ffebaa6aa3ed5a99728db0503f15"></a>
static const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getHeaderKeyword</b> ()</td></tr>
<tr class="separator:a53d8ffebaa6aa3ed5a99728db0503f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:aed0b171f9d1a57fe779dc10c220d1d05"><td class="memItemLeft" align="right" valign="top"><a id="aed0b171f9d1a57fe779dc10c220d1d05"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><b>position_</b></td></tr>
<tr class="separator:aed0b171f9d1a57fe779dc10c220d1d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94f4f5a4ee31e76336c2d63a6bf2a006"><td class="memItemLeft" align="right" valign="top"><a id="a94f4f5a4ee31e76336c2d63a6bf2a006"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><b>transformation_</b></td></tr>
<tr class="separator:a94f4f5a4ee31e76336c2d63a6bf2a006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09f5a7275b338f53c6db9cde2b50a527"><td class="memItemLeft" align="right" valign="top"><a id="a09f5a7275b338f53c6db9cde2b50a527"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><b>surface_patch_</b></td></tr>
<tr class="separator:a09f5a7275b338f53c6db9cde2b50a527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe6fe4cb0e7f24cf762728b81299903f"><td class="memItemLeft" align="right" valign="top"><a id="afe6fe4cb0e7f24cf762728b81299903f"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>surface_patch_pixel_size_</b></td></tr>
<tr class="separator:afe6fe4cb0e7f24cf762728b81299903f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8124db0f95a3a1a6cd5e3a43d1553326"><td class="memItemLeft" align="right" valign="top"><a id="a8124db0f95a3a1a6cd5e3a43d1553326"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>surface_patch_world_size_</b></td></tr>
<tr class="separator:a8124db0f95a3a1a6cd5e3a43d1553326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64ec59aa5c8901769ecdbd7b5b76423d"><td class="memItemLeft" align="right" valign="top"><a id="a64ec59aa5c8901769ecdbd7b5b76423d"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>surface_patch_rotation_</b></td></tr>
<tr class="separator:a64ec59aa5c8901769ecdbd7b5b76423d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b9be06308b191df33dc931f31c65a2d"><td class="memItemLeft" align="right" valign="top"><a id="a9b9be06308b191df33dc931f31c65a2d"></a>
float *&#160;</td><td class="memItemRight" valign="bottom"><b>descriptor_</b></td></tr>
<tr class="separator:a9b9be06308b191df33dc931f31c65a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0870b52f655a4242357a3cc3eb832d23"><td class="memItemLeft" align="right" valign="top"><a id="a0870b52f655a4242357a3cc3eb832d23"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>descriptor_size_</b></td></tr>
<tr class="separator:a0870b52f655a4242357a3cc3eb832d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
静态 Protected 属性</h2></td></tr>
<tr class="memitem:a8e83edbcb664588c69e96727dd0f1acc"><td class="memItemLeft" align="right" valign="top"><a id="a8e83edbcb664588c69e96727dd0f1acc"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>VERSION</b> = 1</td></tr>
<tr class="separator:a8e83edbcb664588c69e96727dd0f1acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>NARF (<a class="el" href="structpcl_1_1_normal.html" title="A point structure representing normal coordinates and the surface curvature estimate....">Normal</a> Aligned Radial Features) is a point feature descriptor type for 3D data. Please refer to <a class="el" href="narf__descriptor_8h_source.html">pcl/features/narf_descriptor.h</a> if you want the class derived from pcl <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a>. See B. Steder, R. B. Rusu, K. Konolige, and W. Burgard Point <a class="el" href="classpcl_1_1_feature.html" title="Feature represents the base feature class. Some generic 3D operations that are applicable to all feat...">Feature</a> Extraction on 3D Range Scans Taking into Account <a class="el" href="class_object.html">Object</a> Boundaries In Proc. of the IEEE Int. Conf. on Robotics &amp;Automation (ICRA). 2011. </p>
<dl class="section author"><dt>作者</dt><dd>Bastian Steder </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="abcbc027348cdabae5b754a01faf7dbcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcbc027348cdabae5b754a01faf7dbcf">&#9670;&nbsp;</a></span>extractForEveryRangeImagePointAndAddToList()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::Narf::extractForEveryRangeImagePointAndAddToList </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>rotation_invariant</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>feature_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Extract an NARF for every point in the range image. </p>

</div>
</div>
<a id="ad0d6212bd684e1bd04281b2b495bdd81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0d6212bd684e1bd04281b2b495bdd81">&#9670;&nbsp;</a></span>extractForInterestPoints()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::Narf::extractForInterestPoints </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&lt; <a class="el" href="structpcl_1_1_interest_point.html">InterestPoint</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>interest_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>rotation_invariant</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>feature_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get a list of features from the given interest points. </p>

</div>
</div>
<a id="a8101cd954ba024b13e3ffee8610c7e2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8101cd954ba024b13e3ffee8610c7e2c">&#9670;&nbsp;</a></span>extractFromRangeImage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::Narf::extractFromRangeImage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>surface_patch_world_size</em> = <code>NARF_DEFAULT_SURFACE_PATCH_PIXEL_SIZE</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Method to extract a NARF feature from a certain 3D point using a range image. pose determines the coordinate system of the feature, whereas it transforms a point from the world into the feature system. This means the interest point at which the feature is extracted will be the inverse application of pose onto (0,0,0). descriptor_size_ determines the size of the descriptor, support_size determines the support size of the feature, meaning the size in the world it covers </p>

</div>
</div>
<a id="a2b67a8d6011ee5c20d9427e7cdd1b3d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b67a8d6011ee5c20d9427e7cdd1b3d6">&#9670;&nbsp;</a></span>extractFromRangeImageAndAddToList() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::Narf::extractFromRangeImageAndAddToList </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>interest_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>rotation_invariant</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>feature_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Add features extracted at the given interest point and add them to the list </p>

</div>
</div>
<a id="aab5c91809cbfbce1ede48f82125fc2fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab5c91809cbfbce1ede48f82125fc2fd">&#9670;&nbsp;</a></span>extractFromRangeImageAndAddToList() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void pcl::Narf::extractFromRangeImageAndAddToList </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>image_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>rotation_invariant</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classpcl_1_1_narf.html">Narf</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>feature_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Same as above </p>

</div>
</div>
<a id="aa62146ff1369f2f3c3b15a8183910269"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa62146ff1369f2f3c3b15a8183910269">&#9670;&nbsp;</a></span>extractFromRangeImageWithBestRotation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool pcl::Narf::extractFromRangeImageWithBestRotation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_range_image.html">RangeImage</a> &amp;&#160;</td>
          <td class="paramname"><em>range_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>interest_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>descriptor_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>support_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Same as above, but using the rotational invariant version by choosing the best extracted rotation around the normal. Use extractFromRangeImageAndAddToList if you want to enable the system to return multiple features with different rotations. </p>

</div>
</div>
<a id="a87a7424251b04af12cc614b8a5748df3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87a7424251b04af12cc614b8a5748df3">&#9670;&nbsp;</a></span>loadBinary() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::Narf::loadBinary </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read from file </p>

</div>
</div>
<a id="ac93851648c43f8b8cd638cac800a44fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac93851648c43f8b8cd638cac800a44fe">&#9670;&nbsp;</a></span>loadBinary() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::Narf::loadBinary </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read from input stream </p>

</div>
</div>
<a id="a4e7e324958d2d3ffa82fd598e70bc57d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e7e324958d2d3ffa82fd598e70bc57d">&#9670;&nbsp;</a></span>loadHeader()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::Narf::loadHeader </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Read header from input stream </p>

</div>
</div>
<a id="a89db16a26f7e0925e718a75efba608a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89db16a26f7e0925e718a75efba608a6">&#9670;&nbsp;</a></span>saveBinary() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::Narf::saveBinary </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Write to file </p>

</div>
</div>
<a id="a50806a8a86f0ae211fec512fc3690ab1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50806a8a86f0ae211fec512fc3690ab1">&#9670;&nbsp;</a></span>saveBinary() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::Narf::saveBinary </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Write to output stream </p>

</div>
</div>
<a id="a8125c8d1ca006267b558380b85fdfc2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8125c8d1ca006267b558380b85fdfc2a">&#9670;&nbsp;</a></span>saveHeader()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void pcl::Narf::saveHeader </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Write header to output stream </p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a1cc0989284b374c5bded66135a1b67ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cc0989284b374c5bded66135a1b67ba">&#9670;&nbsp;</a></span>max_no_of_threads</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int pcl::Narf::max_no_of_threads</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The maximum number of openmp threads that can be used in this class </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>features/include/pcl/features/<a class="el" href="narf_8h_source.html">narf.h</a></li>
<li>features/include/pcl/features/impl/<a class="el" href="narf_8hpp_source.html">narf.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_narf.html">Narf</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
